package algo.A03_递归和算法复杂度;

/**
 * 翻转字符串
 * 找重复：每一次递归，要读取上一个字符
 * 找变化：变化的量应该作为参数
 * 找终点：只剩一个字符时直接返回
 */
public class T04_翻转字符串 {
    public static void main(String[] args) {
        String str = "abcdefg";
        String result = solution(str);
        System.out.println("result = " + result);
    }

    private static String solution(String str) {
        if (str.length() == 1) {
            return str;
        }
        //返回当前的最后一个字符，然后递归，去除已经返回的那个字符
        //substring(begin,end) 截取[begin,end)的字符串，如果只写一个参数则是begin到结束
        return str.charAt(str.length() - 1) + solution(str.substring(0, str.length() - 1));
    }
}
